package com.southwind.springboottest.study.java中流式操作;

import java.util.ArrayList;
import java.util.Collections;
import java.util.function.Function;

/**
 * @description：TODO
 * @author： HXG
 * @create： 2024/3/20 14:04
 */
public class StreamDemo8 {
    public static void main(String[] args) {
        /**
         * map  转换流中的数据类型
         * 注意1:中间方法，返回新的stream流，原来的stream流只能使用一次，建议使用链式编程
         * 注意2:修改stream流中的数据，不会影响原来集合或者数组中的数据
         */
        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list,"张无忌-15","周芷若-14","赵敏-13","张强-20","张三丰-100","张翠山-40","张良-35","王二麻子-37","谢广坤-41");
        //需求；只获取里面的年龄进行打印 String -> int

        //第一个类型：流中原本的数据类型
        //第二个类型：要转成之后的类型

        //apply的形参s：表示流里面每一个数据
        //返回值：表示转换之后的数据

        //当map执行完毕了后，流上的数据就变成了整数
        //所以下面的forEach当中，s表示流里面每一个数据，这个数据现在是整数了
//        list.stream().map(new Function<String, Integer>() {
//            @Override
//            public Integer apply(String s) {
//                String[] arr = s.split("-");
//                String ageString = arr[1];
//                int age = Integer.valueOf(ageString);
//                return age;
//            }
//        }).forEach(s-> System.out.println(s));

        list.stream()
                .map(s -> Integer.valueOf(s.split("-")[1]))
                .forEach(s -> System.out.println(s));

    }
}
